﻿//===========================[ 8 / 2 / 2011 LVI ]=============================
//				Copyright c Vitaly Lyaschenko <SkyChameleon@gmail.com>
// 								Header file
// Purpose: менеджер мэшей (загрузка/сохранение/оптимизация/удаление)
//=============================================================================
#pragma once

#include "cFileManager.h"
#include "cMesh.h"

class cMeshesManager
{
private:
	static cMesh* load_3DS( const std::string& fileName );
	static cMesh* load_IFM( const std::string& fileName );
	static bool   save_IFM( const std::string& fileName, cMesh *mesh );

	// оптимизация данных для кеша видеокарты
	static bool optimizeFaces( cSubMesh &mesh );
	static bool optimizeVertices( cSubMesh &mesh );
	// объединение схожих вершин
	static bool weldVertices( cSubMesh *subMesh );

public:
	cMeshesManager();
	~cMeshesManager();

	static cMesh* loadMesh( const std::string& fileName );
	static bool   saveMesh( const std::string& fileName, cMesh *mesh );
	static bool   optimize( cMesh *mesh, optType ot );
};